auto generating blocks