moved method to upper abstraction level