added fn decorator