major changes, comments, fixes... i dont even know anymore