almost all basic functionality already working