functionally complete without styling and db setup