Updated with implementation details