add initial working, yet hacky version