added outline for internal use