simplified stuff. Still buggy