Separate implementation from header