implicit abstract