In this work, we explore four common algorithms for community detection in networks, namely Agglomerative Hierarchical Clustering, Divisive Hierarchical Clustering (Girvan-Newman), Fastgreedy and the Louvain Method. We investigate their mechanics and compare their differences in terms of implementation and results of the clustering behavior on a standard dataset. We further propose some enhancements to these algorithms that show promising results in our evaluations, such as self-neighboring for Neighbor Matrix constructions, a deterministic slightly faster version of the Louvain Method that favors less bigger clusters and various implementation changes to the Fastgreedy algorithm.