Add documentation
use instancetype in initializer
White space fixes