some general re-arranging of core methods