function serverInit(){

	/**
	 *	Connect first
	 * If you use sqlite, Jaxer create 'appdata.sqlite' in db directory.
	 * You can specify this db file name by third argument.
	 */
	ActiveRecord.connect(ActiveRecord.Adapters.JaxerSQLite);

		// following works too.
		// ActiveRecord.connect(ActiveRecord.Adapters.JaxerSQLite,'filenamehere.sqlite');

	/**
	 * Logging
	 * Following enables logging.
	 * If true, ActiveRecord execute Jaxer.Log.info() for each sql execution or something like it.
	 */
	ActiveRecord.logging = true;

	/**
	 * Execute simple sql
	 * After you executed ActiveRecord.connect(),
	 * You can use ActiveRecord.execute() to execute sql.
	 */
	ActiveRecord.execute('CREATE TABLE IF NOT EXISTS exampletable1 (id INTEGER PRIMARY KEY, username, mailaddr, profile)');

	/**
	 * Create model
	 * ActiveRecord.create(tableName) creates a model object.
	 * You can use sql execution without writhing sql strings.
	 * Followings are the examples of create new records.
	 * 'exampletable1' is the table you created above.
	 */
	var ExampleModel1 = ActiveRecord.create('exampletable1');

	ExampleModel1.create({
		username: 'Takazudo',
		mailaddr: 'takazudo@gmail.com',
		profile: 'hey! I am Takazudo.'
	});
	ExampleModel1.create({
		username: 'Hogezudo',
		mailaddr: 'hogezudo@gmail.com',
		profile: 'hey! I am Hogezudo.'
	});
	
	/**
	 * Model - finder methods
	 * Followings are the examples of finder methods.
	 * Defining the interface by second argument of create allows you to use finder methods.
	 */
	var ExampleModel2 = ActiveRecord.create('exampletable2',{
		username: '',
		mailaddr: '',
		profile: ''
	});

	ExampleModel2.create({
		username: 'Takazudo',
		mailaddr: 'takazudo@gmail.com',
		profile: 'hey! I am Takazudo.'
	});
	ExampleModel2.create({
		username: 'Hogezudo',
		mailaddr: 'takazudo@gmail.com',
		profile: 'hey! I am Hogezudo.'
	});
	ExampleModel2.create({
		username: 'AnyOtherMan1',
		mailaddr: 'someone@gmail.com',
		profile: 'hey! I am AnyOtherMan.'
	});
	ExampleModel2.create({
		username: 'AnyOtherMan2',
		mailaddr: 'someone@gmail.com',
		profile: 'hey! I am AnyOtherMan.'
	});

		/**
		 * ModelInstanceObject.findBy{property}(val)
		 * findBy{property}(val) returns a object which wrapped a record.
		 * this method finds a record with limit=1.
		 */
		var res = ExampleModel2.findByUsername('Takazudo');

		Jaxer.Log.info(res.username); // Takazudo
		Jaxer.Log.info(res.mailaddr); // takazudo@gmail.com
		Jaxer.Log.info(res.profile); // hey! I am Takazudo.
		Jaxer.Log.info(res.id); // 1
		
			/**
			 * ModelInstanceObject.findById(val)
			 * findById(val) is allowed specially without defining interface.
			 */
			var res = ExampleModel2.findById(1);
			Jaxer.Log.info(res.username); // Takazudo
		
		/**
		 * ModelInstanceObject.findAllBy{property}(val)
		 * findAllBy{property}(val) returns an array of matched recoreds.
		 * each member of the array is the object which wrapped a record.
		 * these objects are same record wrapped instance objects as above.
		 */
		var res = ExampleModel2.findAllByMailaddr('takazudo@gmail.com');
		
		Jaxer.Log.info('the matched records length is... '+res.length);
			// the matched records length is... 2
		
		for(var i=0,l=res.length; i<l; i++){
			Jaxer.Log.info(res[i].username);
		}
			// Takazudo
			// Hogezudo

		/**
		 * ModelInstanceObject.find(hash)
		 * find(hash) returns matched objects' array.
		 * same as above. but you can specify multi conditions
		 */
		var res = ExampleModel2.find({
			mailaddr: 'someone@gmail.com',
			profile: 'hey! I am AnyOtherMan.'
		});

		Jaxer.Log.info('the matched records length is... '+res.length);
			// the matched records length is... 2

		for(var i=0,l=res.length; i<l; i++){
			Jaxer.Log.info(res[i].username);
		}
			// AnyOtherMan1
			// AnyOtherMan2

}
