js portion complete