Copyright (c) 2005-2016 riku, all rights reserved