Moved backend printer detail code from backend into printer class and added tests