commit 1/2 implemented stuff