Added methods. Added comments. Clean code.