easy to delegate responsibily with @Delegate annotation.