Use defrecord instead of defrecordp (we want to implement access protocol!