more robust system
go through whole process