Added documentation, renamed classes