implemented core methods