only implements the methods we want to support