issue: use exceptions and parameters, added FIXME regarding return values