Make the code abstract