buggy, but need to commit new functionality