some older solutions