basic features functional with blocks