changes all around to get basic functionality