more methods that need to be defined