Add definitions
Add comments, move Message interface