TODO: add some (unit) tests