JS Restructure

Signed-off-by: Jamie White <hello@jamie-white.com>