Re-written with Methods