skylight: refactor more into extension