interface implementations now more succinct