some methods should remain private
proper coding style