bare metal implementation done