works, needs cleaning and features