Add comments and refaktoring