First phase implementation