moved extra into modules and added accessors