basic features almost complete