basic implementation of components for boulder puzzle