made some methods public instead of protected