Refactor to explicitly implement optional methods