Modified from Apollo.