Added comments.
Simplified once more and protected the API/classes.