complete merge with parkhw's project