added unsatisfying new method. needs a lot of rework