Updating to add final modifiers, removing abstract in interfaces, changing to return Object instead of long