Add comments, add more exceptions/handling
remove useless check
Add TODO