modified functionalit with return type (half)