force public functions in abstract