few helpers and refining