refined core methods