added return types