Functions updated with implementation