proper block handling