Add intent service & restructure