made some methods optional