Moving to interfaces which made everything uglier. Added selected state though.