deleted huge comments, refactored a bit