add blocks functionality