refinement, some additional functionality