refactored to blocks POC