ported across functionality from skin helper addon and moved service.py
logic to it's own module to potentially increase performance