First full version, modified for GitHub