skeleton of desired functionality