Explanation of creating a custom launcher