Implemented generic Block class